;(function() {
    
    if (typeof String.prototype.startsWith != 'function') {
        String.prototype.startsWith = function (prefix) {
            var reg = new RegExp("^" + prefix);
            return reg.test(this);
        };
    }

    if (typeof String.prototype.endsWith != 'function') {
        String.prototype.endsWith = function (suffix) {
            var reg = new RegExp(suffix + "$");
            return reg.test(this);
        }
    }
    
    Date.prototype.format = function (fmt) {
        var o = {
            "M+": this.getMonth() + 1,                 //月份   
            "d+": this.getDate(),                    //日   
            "h+": this.getHours(),                   //小时   
            "m+": this.getMinutes(),                 //分   
            "s+": this.getSeconds(),                 //秒   
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度   
            "S": this.getMilliseconds()             //毫秒   
        };
        if (/(y+)/.test(fmt))
            fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)
            if (new RegExp("(" + k + ")").test(fmt))
                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }
    
    String.prototype.trim = function(){
        return this.replace(/(^\s*)|(\s*$)/g, "");
    }

    String.prototype.ltrim = function(){
        return this.replace(/(^\s*)/g,"");
    }

    String.prototype.rtrim = function(){
        return this.replace(/(\s*$)/g,"");
    }
})();